package cn.iocoder.devlop.module.annual.report.socsecinfo.controller.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import javax.validation.constraints.*;

/**
 * 社保信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class SocsecinfoBaseVO {

    @Schema(description = "年报id(格式为 统一社会信用代码/注册号+年报年份)", requiredMode = Schema.RequiredMode.REQUIRED, example = "14563")
    @NotNull(message = "年报id(格式为 统一社会信用代码/注册号+年报年份)不能为空")
    private String ancheid;

    @Schema(description = "企业主体分类 1,企业2,农合；3,个体 4 外商  5 常驻代表机构", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "企业主体分类不能为空")
    private String entclassify;

    @Schema(description = "城镇职工基本养老保险参保人数")
    private Long so110;

    @Schema(description = "失业保险参保人数")
    private Long so210;

    @Schema(description = "职工基本医疗保险参保人数")
    private Long so310;

    @Schema(description = "工伤保险参保人数")
    private Long so410;

    @Schema(description = "生育保险参保人数")
    private Long so510;

    @Schema(description = "单位参加城镇职工基本养老保险缴费基数 单位：万元")
    private BigDecimal totalwagesSo110;

    @Schema(description = "单位参加失业保险缴费基数 单位：万元")
    private BigDecimal totalwagesSo210;

    @Schema(description = "单位参加职工基本医疗保险缴费基数 单位：万元")
    private BigDecimal totalwagesSo310;

    @Schema(description = "单位参加工伤保险缴费基数 单位：万元，预留")
    private BigDecimal totalwagesSo410;

    @Schema(description = "单位参加生育保险缴费基数 单位：万元")
    private BigDecimal totalwagesSo510;

    @Schema(description = "单位缴费基数是否公示 1：是，2：否")
    private String totalwagesdis;

    @Schema(description = "参加城镇职工基本养老保险本期实际缴费金额 单位：万元")
    private BigDecimal totalpaymentSo110;

    @Schema(description = "参加失业保险本期实际缴费金额 单位：万元")
    private BigDecimal totalpaymentSo210;

    @Schema(description = "参加职工基本医疗保险本期实际缴费金额 单位：万元")
    private BigDecimal totalpaymentSo310;

    @Schema(description = "参加工伤保险本期实际缴费金额 单位：万元")
    private BigDecimal totalpaymentSo410;

    @Schema(description = "参加生育保险本期实际缴费金额 单位：万元")
    private BigDecimal totalpaymentSo510;

    @Schema(description = "本期实际缴费金额是否公示 1：是，2：否")
    private String totalpaymentdis;

    @Schema(description = "单位参加城镇职工基本养老保险累计欠缴金额 单位：万元")
    private BigDecimal unpaidsocialinsSo110;

    @Schema(description = "单位参加失业保险累计欠缴金额 单位：万元")
    private BigDecimal unpaidsocialinsSo210;

    @Schema(description = "单位参加职工基本医疗保险累计欠缴金额 单位：万元")
    private BigDecimal unpaidsocialinsSo310;

    @Schema(description = "参加工伤保险累计欠缴金额 单位：万元")
    private BigDecimal unpaidsocialinsSo410;

    @Schema(description = "单位参加生育保险累计欠缴金额 单位：万元")
    private BigDecimal unpaidsocialinsSo510;

    @Schema(description = "单位累计欠缴金额是否公示 1：是，2：否")
    private String unpaidsocialinsdis;

}
